#include<bits/stdc++.h>
using namespace std;
/**
 * @file linear list(not linked list)
 */

/**
 * @brief struct static define
 */

#define MAXSIZE 50
typedef struct {
    int data[MAXSIZE];
    int length;
}sqlist;

/**
 * @brief struct dynamic define
 */

#define INITSIZE 50 /*initsize*/
typedef struct{
    int* data;
    int maxsize,length;
}dynalist;
//init static & dynamic sqlist
void init_stalist(sqlist &l){
    l.length=0;
}
void init_dynlist(dynalist &l){
    l.data=new int[INITSIZE];
    /*⬆AKA
    l.data=(int*)malloc(sizof(int)*INIRSIZE)
    C style
    */
   l.length=0;
   l.maxsize=INITSIZE;
   
}

//insert
bool insert(sqlist &l,int i,int e){
    if(i<1||i>l.length+1){
        return false;
    }
    if(l.length>MAXSIZE){
        return false;
    }
    for(int j=l.length;j>=i;j--){
        l.data[j]=l.data[j-1];
    }
    l.data[i-1]=e;
    l.length++;
    return true;
}
//delete
bool delete_with_index(sqlist &l,int i){
    for(int j=i;j<l.length;j++){
        l.data[j-1]=l.data[j];
    }
    l.length--;
    return true;
}
//find_with_value
int find_with_value(sqlist &l,int e){
    for(int i=0;i<l.length;i++){
        if(l.data[i]==e){
            return i+1;
        }
    }
    return 1;
}
//print_list
void print_list(sqlist l){
  
    for(int i=0;i<l.length;i++){
        cout<<"subscript "<<i<<" is: "<<l.data[i];
        cout<<"\n";
    }
}
int main(){
sqlist L;
init_stalist(L);
for(int i=0;i<10;i++){
    insert(L,i,i);
}
print_list(L);

return 0;
}